#ifndef __BOOT_API_H__
#define __BOOT_API_H__

typedef enum
{
    UC_UBOOT_DEF_WORK = 0,
    UC_UBOOT_OS_UPDATE = 1,
    UC_YMODEM_DOWNLOAD = 2,
} uc_uboot_work_e;

typedef enum
{
    UC_UBOOT_OTA_SUCC = 0,
    UC_UBOOT_OTA_FAIL = 1,
} uc_ota_state_e;

void uc_boot_cfg_default(void);
int uc_boot_cfg_init(void);
int uc_boot_cfg_save(void);
void uc_boot_cfg_reset(void);

/**
 * @brief 获取ymodem升级的uart口
 *
 */
void uc_get_ym_uart(char *name);

/**
 * @brief 设置ymodem升级的uart口
 *
 */
void uc_set_ym_uart(char *name);

/**
 * @brief 获取ymodem等待时间.单位S.
 *
 */
unsigned char uc_get_ym_time(void);

/**
 * @brief 设置ymodem等待时间.单位S.
 *
 */
void uc_set_ym_time(unsigned char ymode_wait_time);
/**
 * @brief 获取uboot工作模式
 *
 */
uc_uboot_work_e uc_get_uboot_mode(void);

/**
 * @brief 设置uboot工作模式
 *
 */
void uc_set_uboot_mode(uc_uboot_work_e mode);

/**
 * @brief 获取升级包文件名字和大小
 *
 */
void uc_get_file_params(unsigned int *file_size);
/**
 * @brief 设置升级包文件名字和大小
 *
 */
void uc_set_file_params(unsigned int file_size);

/**
 * @brief 获取OTA升级状态
 *
 */
uc_ota_state_e uc_get_ota_state(void);
/**
 * @brief 设置OTA升级状态
 *
 */
void uc_set_ota_state(uc_ota_state_e state);

#endif